﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using System.Data.SqlClient;
using RESTServicesMov.Dominio;

namespace RESTServicesMov.Persistencia
{
    public class PedidoDAO
    {
        public Pedido Obtener(int id)
        {

            Pedido pedidoEncontrado = null;
            string sql = "SELECT * FROM PEDIDO WHERE  idPedido=@id";
            string text = "";
            using (SqlConnection con = new SqlConnection(ConexionBD.ObtenerCadena()))
            {

                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@id", id));
                    using (SqlDataReader resultado = com.ExecuteReader())
                    {
                        if (resultado.Read())
                        {
                            if (Convert.IsDBNull(resultado["TextCab"]))
                            {
                            }
                            else {
                              text =   (string)resultado["TextCab"];
                            }

                       pedidoEncontrado = new Pedido()
                            {
                                idpedido = int.Parse(resultado["idPedido"].ToString()),
                                fecpla = Convert.ToDateTime(resultado["FecEntPla"]),
                                idprov = int.Parse(resultado["idProveedor"].ToString()),
                                usucre = int.Parse(resultado["UsuCreaPed"].ToString()),
                                textcab = text,
                                estado = (string)resultado["Estado"],
                                fecreal = Convert.ToDateTime(resultado["FecEntReal"]),
                                tipped = (string)resultado["TipPed"]
                            };
                        }
                    }
                }
            }

            return pedidoEncontrado;
        }

        public List<PedidoDetalle> ObtenerDetalle(int id, string status)
        {
            List<PedidoDetalle> listaPedido = new List<PedidoDetalle>();
            PedidoDetalle detalleEncontrado = null;
            string sql = "SELECT * FROM PEDIDO_DETALLE WHERE  idPedido=@id and StatPos=@st";
            
            using (SqlConnection con = new SqlConnection(ConexionBD.ObtenerCadena()))
            {

                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@id", id));
                    com.Parameters.Add(new SqlParameter("@st", status));
                    using (SqlDataReader resultado = com.ExecuteReader())
                    {

                        while (resultado.Read())
                        {
                            detalleEncontrado = new PedidoDetalle()
                            {
                                idpedido = int.Parse(resultado["idPedido"].ToString()),
                                statpos = (string)resultado["StatPos"],
                                cantped = decimal.Parse(resultado["CantPed"].ToString()),
                                cantent = decimal.Parse(resultado["CANTENT"].ToString()),
                                precio = decimal.Parse(resultado["Precio"].ToString()),
                                pos = (string)resultado["posnr"],
                                textpos = (string)resultado["TextPos"],
                                idCentro = int.Parse(resultado["idCentro"].ToString()),
                                idProd = int.Parse(resultado["idProducto"].ToString())
                            };
                            listaPedido.Add(detalleEncontrado);
                        }
                    }
                }
            }

            return listaPedido;
        }
    }




}